#  Copyright (c) 2021
#  User:SDUFE-Zhaocheng Lu
#  File:lib.py
#  Date:2021/08/16 23:30:16
import pymysql


class SQL:
    config = {
        'host': '118.190.60.13',
        'user': 'YQ_Sign',
        'password': '5BnJECbLeXJCmyZj',
        'database': 'yq_sign',
    }

    def __init__(self):
        self.db = pymysql.connect(host=self.config['host'], user=self.config['user'],
                                  password=self.config['password'],
                                  database=self.config['database'])
        self.cursor = self.db.cursor()

    def run(self, sql: str):
        self.cursor.execute(sql)

    def select(self, field_list: list, table, check_field=''):
        sql = "select " + ','.join(field_list) + ' from ' + table + (' where ' if len(
            check_field) > 0 else '') + (check_field.replace('&', ' and ').replace('|', ' or ') if len(
            check_field) > 0 else '')
        self.run(sql)
        return self.cursor.fetchall()


field_name = ['school_id', 'password', 'email', 'name', 'sex', 'study_id', 'college_id', 'address', 'contact', 'phone',
              'province_id', 'city_id', 'now_address', 'addTime', 'expireTime','active']
data_field = ['name', 'sex', 'study_id', 'college_id', 'address', 'contact', 'phone',
              'province_id', 'city_id', 'now_address']
qd_field = ['name', 'sex', 'study_id', 'college_id', 'address', 'contact', 'phone', 'province_id', 'city_id',
            'now_address', 'verify']
fail_times = 1
college = {'0': '--选择学院，按照学校机构标准选择--', '402': '经济学院', '403': '财政税务学院', '404': '金融学院', '405': '保险学院', '406': '国际经贸学院',
           '407': '管理科学与工程学院', '408': '工商管理学院', '409': '会计学院（MPAcc中心）', '410': '公共管理学院（MPA中心）', '411': '法学院',
           '412': '马克思主义学院', '413': '体育学院', '414': '文学与新闻传播学院', '415': '外国语学院', '416': '公共外语教学部', '417': '数学与数量经济学院',
           '418': '统计学院', '419': '计算机科学与技术学院', '420': '艺术学院', '421': '国际商学院', '422': '国际教育学院（留学生工作办公室）',
           '423': '继续教育学院（山东省财政职工大学）', '424': 'MBA学院', '426': '商经学院（莱芜校区管理办公室）', '427': '创新创业教育学院', '428': '龙山荣誉学院'}
province = [['0', '--请选择--'], ['2', '北京市'], ['3', '天津市'], ['4', '河北省'], ['5', '山西省'], ['6', '内蒙古自治区'], ['7', '辽宁省'],
            ['8', '吉林省'], ['9', '黑龙江省'], ['10', '上海市'], ['11', '江苏省'], ['12', '浙江省'], ['13', '安徽省'], ['14', '福建省'],
            ['15', '江西省'], ['16', '山东省'], ['17', '河南省'], ['18', '湖北省'], ['19', '湖南省'], ['20', '广东省'], ['21', '广西壮族自治区'],
            ['22', '海南省'], ['23', '重庆市'], ['24', '四川省'], ['25', '贵州省'], ['26', '云南省'], ['27', '西藏自治区'], ['28', '陕西省'],
            ['29', '甘肃省'], ['30', '青海省'], ['31', '宁夏回族自治区'], ['32', '新疆维吾尔自治区'], ['6000', '台湾'], ['7000', '香港'],
            ['8000', '澳门'], ['9000', '国外']]
provinces = {'2': {'name': '北京市',
                   'city': {'378': '东城区', '379': '西城区', '382': '朝阳区', '383': '丰台区', '384': '石景山区', '385': '海淀区',
                            '386': '门头沟区', '387': '房山区', '388': '通州区', '389': '顺义区', '390': '昌平区', '391': '大兴区',
                            '392': '怀柔区', '393': '平谷区', '394': '密云县', '395': '延庆县'}}, '3': {'name': '天津市',
                                                                                            'city': {'396': '和平区',
                                                                                                     '397': '河东区',
                                                                                                     '398': '河西区',
                                                                                                     '399': '南开区',
                                                                                                     '400': '河北区',
                                                                                                     '401': '红桥区',
                                                                                                     '404': '滨海新区',
                                                                                                     '405': '东丽区',
                                                                                                     '406': '西青区',
                                                                                                     '407': '津南区',
                                                                                                     '408': '北辰区',
                                                                                                     '409': '武清区',
                                                                                                     '410': '宝坻区',
                                                                                                     '411': '宁河县',
                                                                                                     '412': '静海县',
                                                                                                     '413': '蓟县'}},
             '4': {'name': '河北省',
                   'city': {'37': '石家庄市', '38': '唐山市', '39': '秦皇岛市', '40': '邯郸市', '41': '邢台市', '42': '保定市',
                            '43': '张家口市', '44': '承德市', '45': '沧州市', '46': '廊坊市', '47': '衡水市'}}, '5': {'name': '山西省',
                                                                                                      'city': {
                                                                                                          '48': '太原市',
                                                                                                          '49': '大同市',
                                                                                                          '50': '阳泉市',
                                                                                                          '51': '长治市',
                                                                                                          '52': '晋城市',
                                                                                                          '53': '朔州市',
                                                                                                          '54': '晋中市',
                                                                                                          '55': '运城市',
                                                                                                          '56': '忻州市',
                                                                                                          '57': '临汾市',
                                                                                                          '58': '吕梁市'}},
             '6': {'name': '内蒙古自治区',
                   'city': {'59': '呼和浩特市', '60': '包头市', '61': '乌海市', '62': '赤峰市', '63': '通辽市', '64': '鄂尔多斯市',
                            '65': '呼伦贝尔市', '66': '巴彦淖尔市', '67': '乌兰察布市', '68': '兴安盟', '69': '锡林郭勒盟', '70': '阿拉善盟'}},
             '7': {'name': '辽宁省',
                   'city': {'71': '沈阳市', '72': '大连市', '73': '鞍山市', '74': '抚顺市', '75': '本溪市', '76': '丹东市', '77': '锦州市',
                            '78': '营口市', '79': '阜新市', '80': '辽阳市', '81': '盘锦市', '82': '铁岭市', '83': '朝阳市',
                            '84': '葫芦岛市'}}, '8': {'name': '吉林省',
                                                  'city': {'85': '长春市', '86': '吉林市', '87': '四平市', '88': '辽源市',
                                                           '89': '通化市', '90': '白山市', '91': '松原市', '92': '白城市',
                                                           '93': '延边朝鲜族自治州'}}, '9': {'name': '黑龙江省',
                                                                                     'city': {'94': '哈尔滨市',
                                                                                              '95': '齐齐哈尔市',
                                                                                              '96': '鸡西市', '97': '鹤岗市',
                                                                                              '98': '双鸭山市', '99': '大庆市',
                                                                                              '100': '伊春市',
                                                                                              '101': '佳木斯市',
                                                                                              '102': '七台河市',
                                                                                              '103': '牡丹江市',
                                                                                              '104': '黑河市',
                                                                                              '105': '绥化市',
                                                                                              '106': '大兴安岭地区'}},
             '10': {'name': '上海市', 'city': {'107': '市辖区', '108': '县'}}, '11': {'name': '江苏省',
                                                                               'city': {'109': '南京市', '110': '无锡市',
                                                                                        '111': '徐州市', '112': '常州市',
                                                                                        '113': '苏州市', '114': '南通市',
                                                                                        '115': '连云港市', '116': '淮安市',
                                                                                        '117': '盐城市', '118': '扬州市',
                                                                                        '119': '镇江市', '120': '泰州市',
                                                                                        '121': '宿迁市'}},
             '12': {'name': '浙江省',
                    'city': {'122': '杭州市', '123': '宁波市', '124': '温州市', '125': '嘉兴市', '126': '湖州市', '127': '绍兴市',
                             '128': '金华市', '129': '衢州市', '130': '舟山市', '131': '台州市', '132': '丽水市'}},
             '13': {'name': '安徽省',
                    'city': {'133': '合肥市', '134': '芜湖市', '135': '蚌埠市', '136': '淮南市', '137': '马鞍山市', '138': '淮北市',
                             '139': '铜陵市', '140': '安庆市', '141': '黄山市', '142': '滁州市', '143': '阜阳市', '144': '宿州市',
                             '145': '巢湖市', '146': '六安市', '147': '亳州市', '148': '池州市', '149': '宣城市'}},
             '14': {'name': '福建省',
                    'city': {'150': '福州市', '151': '厦门市', '152': '莆田市', '153': '三明市', '154': '泉州市', '155': '漳州市',
                             '156': '南平市', '157': '龙岩市', '158': '宁德市'}}, '15': {'name': '江西省',
                                                                                'city': {'159': '南昌市', '160': '景德镇市',
                                                                                         '161': '萍乡市', '162': '九江市',
                                                                                         '163': '新余市', '164': '鹰潭市',
                                                                                         '165': '赣州市', '166': '吉安市',
                                                                                         '167': '宜春市', '168': '抚州市',
                                                                                         '169': '上饶市'}},
             '16': {'name': '山东省',
                    'city': {'170': '济南市', '171': '青岛市', '172': '淄博市', '173': '枣庄市', '174': '东营市', '175': '烟台市',
                             '176': '潍坊市', '177': '济宁市', '178': '泰安市', '179': '威海市', '180': '日照市', '181': '莱芜市',
                             '182': '临沂市', '183': '德州市', '184': '聊城市', '185': '滨州市', '186': '菏泽市'}},
             '17': {'name': '河南省',
                    'city': {'187': '郑州市', '188': '开封市', '189': '洛阳市', '190': '平顶山市', '191': '安阳市', '192': '鹤壁市',
                             '193': '新乡市', '194': '焦作市', '195': '濮阳市', '196': '许昌市', '197': '漯河市', '198': '三门峡市',
                             '199': '南阳市', '200': '商丘市', '201': '信阳市', '202': '周口市', '203': '驻马店市'}},
             '18': {'name': '湖北省',
                    'city': {'204': '武汉市', '205': '黄石市', '206': '十堰市', '207': '宜昌市', '208': '襄樊市', '209': '鄂州市',
                             '210': '荆门市', '211': '孝感市', '212': '荆州市', '213': '黄冈市', '214': '咸宁市', '215': '随州市',
                             '216': '恩施土家族苗族自治州', '217': '省直辖县级行政区划'}}, '19': {'name': '湖南省',
                                                                               'city': {'218': '长沙市', '219': '株洲市',
                                                                                        '220': '湘潭市', '221': '衡阳市',
                                                                                        '222': '邵阳市', '223': '岳阳市',
                                                                                        '224': '常德市', '225': '张家界市',
                                                                                        '226': '益阳市', '227': '郴州市',
                                                                                        '228': '永州市', '229': '怀化市',
                                                                                        '230': '娄底市',
                                                                                        '231': '湘西土家族苗族自治州'}},
             '20': {'name': '广东省',
                    'city': {'232': '广州市', '233': '韶关市', '234': '深圳市', '235': '珠海市', '236': '汕头市', '237': '佛山市',
                             '238': '江门市', '239': '湛江市', '240': '茂名市', '241': '肇庆市', '242': '惠州市', '243': '梅州市',
                             '244': '汕尾市', '245': '河源市', '246': '阳江市', '247': '清远市', '248': '东莞市', '249': '中山市',
                             '250': '潮州市', '251': '揭阳市', '252': '云浮市'}}, '21': {'name': '广西壮族自治区',
                                                                                'city': {'253': '南宁市', '254': '柳州市',
                                                                                         '255': '桂林市', '256': '梧州市',
                                                                                         '257': '北海市', '258': '防城港市',
                                                                                         '259': '钦州市', '260': '贵港市',
                                                                                         '261': '玉林市', '262': '百色市',
                                                                                         '263': '贺州市', '264': '河池市',
                                                                                         '265': '来宾市', '266': '崇左市'}},
             '22': {'name': '海南省', 'city': {'267': '海口市', '268': '三亚市', '269': '省直辖县级行政区划'}},
             '23': {'name': '重庆市', 'city': {'270': '市辖区', '271': '县'}}, '24': {'name': '四川省',
                                                                               'city': {'273': '成都市', '274': '自贡市',
                                                                                        '275': '攀枝花市', '276': '泸州市',
                                                                                        '277': '德阳市', '278': '绵阳市',
                                                                                        '279': '广元市', '280': '遂宁市',
                                                                                        '281': '内江市', '282': '乐山市',
                                                                                        '283': '南充市', '284': '眉山市',
                                                                                        '285': '宜宾市', '286': '广安市',
                                                                                        '287': '达州市', '288': '雅安市',
                                                                                        '289': '巴中市', '290': '资阳市',
                                                                                        '291': '阿坝藏族羌族自治州',
                                                                                        '292': '甘孜藏族自治州',
                                                                                        '293': '凉山彝族自治州'}},
             '25': {'name': '贵州省', 'city': {'294': '贵阳市', '295': '六盘水市', '296': '遵义市', '297': '安顺市', '298': '铜仁地区',
                                            '299': '黔西南布依族苗族自治州', '300': '毕节地区', '301': '黔东南苗族侗族自治州',
                                            '302': '黔南布依族苗族自治州'}}, '26': {'name': '云南省',
                                                                          'city': {'303': '昆明市', '304': '曲靖市',
                                                                                   '305': '玉溪市', '306': '保山市',
                                                                                   '307': '昭通市', '308': '丽江市',
                                                                                   '309': '普洱市', '310': '临沧市',
                                                                                   '311': '楚雄彝族自治州',
                                                                                   '312': '红河哈尼族彝族自治州',
                                                                                   '313': '文山壮族苗族自治州',
                                                                                   '314': '西双版纳傣族自治州', '315': '大理白族自治州',
                                                                                   '316': '德宏傣族景颇族自治州',
                                                                                   '317': '怒江傈僳族自治州',
                                                                                   '318': '迪庆藏族自治州'}},
             '27': {'name': '西藏自治区',
                    'city': {'319': '拉萨市', '320': '昌都地区', '321': '山南地区', '322': '日喀则地区', '323': '那曲地区', '324': '阿里地区',
                             '325': '林芝地区'}}, '28': {'name': '陕西省',
                                                     'city': {'326': '西安市', '327': '铜川市', '328': '宝鸡市', '329': '咸阳市',
                                                              '330': '渭南市', '331': '延安市', '332': '汉中市', '333': '榆林市',
                                                              '334': '安康市', '335': '商洛市'}}, '29': {'name': '甘肃省',
                                                                                                   'city': {
                                                                                                       '336': '兰州市',
                                                                                                       '337': '嘉峪关市',
                                                                                                       '338': '金昌市',
                                                                                                       '339': '白银市',
                                                                                                       '340': '天水市',
                                                                                                       '341': '武威市',
                                                                                                       '342': '张掖市',
                                                                                                       '343': '平凉市',
                                                                                                       '344': '酒泉市',
                                                                                                       '345': '庆阳市',
                                                                                                       '346': '定西市',
                                                                                                       '347': '陇南市',
                                                                                                       '348': '临夏回族自治州',
                                                                                                       '349': '甘南藏族自治州'}},
             '30': {'name': '青海省',
                    'city': {'350': '西宁市', '351': '海东地区', '352': '海北藏族自治州', '353': '黄南藏族自治州', '354': '海南藏族自治州',
                             '355': '果洛藏族自治州', '356': '玉树藏族自治州', '357': '海西蒙古族藏族自治州'}},
             '31': {'name': '宁夏回族自治区', 'city': {'358': '银川市', '359': '石嘴山市', '360': '吴忠市', '361': '固原市', '362': '中卫市'}},
             '32': {'name': '新疆维吾尔自治区',
                    'city': {'363': '乌鲁木齐市', '364': '克拉玛依市', '365': '吐鲁番地区', '366': '哈密地区', '367': '昌吉回族自治州',
                             '368': '博尔塔拉蒙古自治州', '369': '巴音郭楞蒙古自治州', '370': '阿克苏地区', '371': '克孜勒苏柯尔克孜自治州',
                             '372': '喀什地区', '373': '和田地区', '374': '伊犁哈萨克自治州', '375': '塔城地区', '376': '阿勒泰地区',
                             '377': '自治区直辖县级行政区划'}}, '6000': {'name': '台湾', 'city': {}},
             '7000': {'name': '香港', 'city': {}}, '8000': {'name': '澳门', 'city': {}}, '9000': {'name': '国外', 'city': {}},
             'city': {}}
